package com.monster.dict.domain.convert;

import com.monster.dict.domain.dto.DictItemInsertDto;
import com.monster.dict.domain.dto.DictItemUpdateDto;
import com.monster.dict.domain.vo.DictItemListVo;
import com.monster.dict.infrastructure.entity.SysDictItem;
import org.mapstruct.Mapper;

import java.util.List;

/**
 * 字典数据转换
 *
 * @author kuang
 */
@Mapper(componentModel = "spring")
public interface DictItemConvert {

    /**
     * 字典项新增数据转换
     * @param data 新增的数据
     * @return SysDictItem
     */
    SysDictItem  toSysDictItem (DictItemInsertDto data);

    /**
     * 字典项数据修改转换
     * @param data 修改的数据
     * @return SysDictItem
     */
    SysDictItem toSysDictItem (DictItemUpdateDto data);

    /**
     * 数据库实体转换为显示实体
     * @param data 需要转换的实体
     * @return DictItemListVo
     */
    DictItemListVo toDictItemListVo (SysDictItem data);

    /**
     * 数据库实体转换为显示实体（集合）
     * @param data 需要转换的实体（集合）
     * @return List<DictItemListVo>
     */
    List<DictItemListVo> toDictItemListVos (List<SysDictItem> data);

}
